-- index based 0 Array
local Array =class("Array")

	function Array:ctor(data)	  	
	  self.array ={}
	  self.size =0
	  if data then
	   self.array =data
	   self.size =table.maxn(data)
	  end
	 
	end
	--升序
	function Array:sort()
	 table.sort(self.array,function(v1,v2) return v1<v2 end)
	end
	--降序
	function Array:sortDesc()
	  table.sort(self.array,function(v1,v2) return v1>v2 end)
	end
	
	
	function Array:push(obj)	  
		self.array[self.size+1]=obj
		self.size =self.size+1
	end
	
	function Array:pop()
	 if self.size<=0 then 
     return
   end
	 print("before pop------------------")
	 for i=1,table.maxn(self.array) do
	  print(self.array[i].name)
	 end	
	 local obj =self:get(self.size-1)
	 self:remove(self.size-1)
	 print("after pop---------------------") 
	 for i=1,table.maxn(self.array) do
      print(self.array[i].name)
   end
	 
	 return obj
	end
	
	function Array:removeObj(obj)
	  -- i start from 1
		for i,v in ipairs(self.array) do
		  if v ==obj then
		    self:remove(i-1)
		    return
		  end
		end	
	end
	-- start from 0
	function Array:remove(index)
		 table.remove(self.array, index+1)
		 self.size =self.size-1
	end
		
	function Array:clear()
	  self.array ={}
	  self.size =0
	end
	
	function Array:foreach(callBack)
		for k,v in pairs(self.array) do
	      callBack(v)
	    end
	end

	function Array:get(index)
	 return self.array[index+1]
	end
	
	function Array:getSize()
	  return self.size
	end

return Array